Don't actually clear background when mapped, as that causes ugly flashed. Just queue...
authorAlexander Larsson <alexl@redhat.com>
Tue, 9 Dec 2008 11:32:36 +0000 (12:32 +0100)
committerAlexander Larsson <alex@localhost.localdomain>
Thu, 2 Apr 2009 08:14:08 +0000 (10:14 +0200)
This is what the X backend does too.

gdk/gdkwindow.c

index 750ea1e1305d3e5bf79667405df746c3dd35a912..d7586a3ae790789fb833dfa6e1b275fbacac4b57 100644 (file)
@@ -4860,29 +4860,6 @@ gdk_window_foreign_new (GdkNativeWindow anid)
   return gdk_window_foreign_new_for_display (gdk_display_get_default (), anid);
 }
 
-/* Called when window becomes viewable. Clears and sends exposes
-   for all the already mapped windows in the hierarchy */
-static void
-synthesize_clears (GdkWindowObject *window)
-{
-  GList *l;
-  
-  if (!gdk_window_has_impl (window) && !window->input_only)
-    {
-      gdk_window_clear_area_e (GDK_WINDOW (window),
-                              0, 0,
-                              window->width, window->height);
-    }
-  
-  for (l = window->children; l != NULL; l = l->next)
-    {
-      GdkWindow *child = GDK_WINDOW (l->data);
-      
-      if (GDK_WINDOW_IS_MAPPED (child))
-       synthesize_clears (GDK_WINDOW_OBJECT (child));
-    }
-}
-
 static inline void
 gdk_window_raise_internal (GdkWindow *window)
 {
@@ -4951,8 +4928,7 @@ gdk_window_show_internal (GdkWindow *window, gboolean raise)
     }
   
   if (!was_mapped && gdk_window_is_viewable (window))
-    synthesize_clears (private);
-  
+    gdk_window_invalidate_rect (window, NULL, TRUE);
 }
   
 /**